package model

import "time"

// 事件数据接口
type EventData interface {
	Normalize() error
}

// 请求体
type Request struct {
	Url         string        // 数据上报接口地址
	Timeout     time.Duration // 接口请求timeout 秒级时间
	RetryCount  int			  // 重试次数, 默认重试3次则丢失数据, 失败10秒后重试
	RequestData RequestData   // 请求体
}

// 请求数据
type RequestData struct {
	ApiKey      string   `json:"apiKey"`      // 接口秘钥
	GameId      int      `json:"gameId"`     // 游戏id
	Timezone    string   `json:"timezone"`     // 时区，例如：utc+8
	Data        []EventData `json:"dataList"`        // 事件数据
	Compression string   `json:"compression"` // 压缩算法,暂时不支持,请填写None
}

// 响应数据
type RespData struct {
	Code    int    							// 响应code, 0为正常, 1000为异常
	Message string 							// 响应消息
	TTL     int
	Data    struct {
		FailIndex int `json:"fail_index"` // 失败的起始索引值, 正常为-1
	}
}